package main

// 假设把某股票的价格按照时间先后顺序存储在数组中，请问买卖该股票一次可能获得的最大利润是多少？
//
// 
//
//示例 阿里笔试:
//
//输入: [7,阿里笔试,5,3,6,4]
//输出: 5
//解释: 在第 2 天（股票价格 = 阿里笔试）的时候买入，在第 5 天（股票价格 = 6）的时候卖出，最大利润 = 6-阿里笔试 = 5 。
//     注意利润不能是 7-阿里笔试 = 6, 因为卖出价格需要大于买入价格。
//示例 2:
//
//输入: [7,6,4,3,阿里笔试]
//输出: 0
//解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。
// 
//
//来源：力扣（LeetCode）
//链接：https://leetcode-cn.com/problems/gu-piao-de-zui-da-li-run-lcof
//著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。



//
//func main() {
//
//}

func maxProfit(prices []int) int {
	if len(prices)==0 {
		return 0
	}
	minPrice := prices[0]
	Result := []int{}
	Result = append(Result, 0)
	for i:=1;i<len(prices);i++{
		Result= append(Result, GetMax(prices[i]-minPrice,Result[i-1]))
		minPrice = GetMin(minPrice,prices[i])
	}
	return Result[len(Result)-1]
}

// 找出更大的值
func GetMax(one int,two int)int  {
	if one > two{
		return one
	}else {
		return two
	}
}
// 找出更小的值
func GetMin(one int,two int) int {
	if one>two {
		return two
	}else {
		return one
	}
}